package com.mp.controller.rest;

import com.mp.controller.rest.util.MemoryPriceRest;
import com.mp.controller.rest.util.MensagemRetornoRest;
import com.mp.db.jpa.modelo.TipoItem;
import com.mp.db.jpa.modelo.Usuario;
import com.mp.negocio.TipoItemService;
import com.mp.negocio.UsuarioService;
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;


@Path("/Cadastro")
public class CadastroRest extends MemoryPriceRest
{
      
    private  TipoItemService tipoItemService = new TipoItemService();
    private  UsuarioService usrService = new UsuarioService ();
    
    @POST
    @Path("/GravarUsuario")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    public MensagemRetornoRest setUsuario(
            @FormParam("login")String login, 
            @FormParam("senha") String senha,
            @FormParam("classe") String classe,
            @FormParam("idTipoItem") String tipoItem)
    {
       
        try
        {
            TipoItem tipoItemBanco = tipoItemService.obterTipoItem(Integer.parseInt(tipoItem));
            
            if(tipoItemBanco == null)
            {
               throw new Exception("Tipo item não encontrado para o vínculo com o usuário que se deseje cadastrar.");
            }
            
            Usuario usr = new Usuario();
            usr.setLogin(login);
            usr.setSenha(senha);
            usr.setClasse(classe);
            
            usr.setTipoItem(tipoItemBanco);
                   
            usrService.gravarUsuario(usr);
            
        }
        catch(Exception ex)
        {
            return this.setRetornoComErro(ex);  
        }
        
        return this.setRetornoCorreto("Ok");  
    }
}
